#include "stm32f10x.h"

#include "sys.h"
#include "delay.h"
#include "touch_key.h"
#include "i2c.h"
#include "oled0561.h"
#include "sg90.h"
//#include "relay.h"

int main(void)
{
    delay_ms(500); //等待其他器件就绪

    RCC_Configuration();//时钟设置
		//RELAY_Init();//继电器初始化
	
		I2C_Configuration();//I2C初始化
		OLED0561_Init(); //OLED初始化
		OLED_DISPLAY_8x16_BUFFER(0,"   RainGoGo    "); //显示字符串
		OLED_DISPLAY_8x16_BUFFER(3,"   SG90 TEST    "); //显示字符串
	
    TOUCH_KEY_Init();

    SG90_Init();

    SG90_Angle(0);

    while (1) {
		
			if(!GPIO_ReadInputDataBit(TOUCH_KEY_PORT,TOUCH_KEY_A)) { //读触摸按键的电平
					OLED_DISPLAY_8x16_BUFFER(6,"  Angle 0       "); //显示字符串
					SG90_Angle(0);//舵机初步为0（最小值）
			}
			if(!GPIO_ReadInputDataBit(TOUCH_KEY_PORT,TOUCH_KEY_B)) { //读触摸按键的电平
					OLED_DISPLAY_8x16_BUFFER(6,"  Angle 45      "); //显示字符串
					SG90_Angle(45);//舵机初步为0（最小值）
			}
			if(!GPIO_ReadInputDataBit(TOUCH_KEY_PORT,TOUCH_KEY_C)) { //读触摸按键的电平
					OLED_DISPLAY_8x16_BUFFER(6,"  Angle 90     "); //显示字符串
					SG90_Angle(90);//舵机初步为0（最小值）
			}
			if(!GPIO_ReadInputDataBit(TOUCH_KEY_PORT,TOUCH_KEY_D)) { //读触摸按键的电平
					OLED_DISPLAY_8x16_BUFFER(6,"  Angle 180     "); //显示字符串
					SG90_Angle(180);//舵机初步为0（最小值）
			}
   }
}


/*
* u32     a; //定义32位无符号变量a
* u16     a; //定义16位无符号变量a
* u8     a; //定义8位无符号变量a
* vu32     a; //定义易变的32位无符号变量a
* vu16     a; //定义易变的 16位无符号变量a
* vu8     a; //定义易变的 8位无符号变量a
* uc32     a; //定义只读的32位无符号变量a
* uc16     a; //定义只读 的16位无符号变量a
* uc8     a; //定义只读 的8位无符号变量a
*/

/*
选择IO接口工作方式：
GPIO_Mode_AIN 模拟输入
GPIO_Mode_IN_FLOATING 浮空输入
GPIO_Mode_IPD 下拉输入
GPIO_Mode_IPU 上拉输入
GPIO_Mode_Out_PP 推挽输出
GPIO_Mode_Out_OD 开漏输出
GPIO_Mode_AF_PP 复用推挽输出
GPIO_Mode_AF_OD 复用开漏输出
*/
